package com.spring.demo10;

import org.junit.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

/**
 * @author vhans
 */
public class ValueTest {

    /**
     * 解析@Value的过程：
     * 1. 将@Value注解的value参数值作为环境配置信息接口Environment的resolvePlaceholders方法参数进行解析
     * 2. Environment内部会访问MutablePropertySources类对象（其实现了PropertySources接口）来解析
     * 3. MutablePropertySources内部有一个PropertySource列表，此时会遍历PropertySource列表，调用PropertySource.getProperty方法来解析key对应的值
     */
    @Test
    public void test() {
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(MainConfig1.class);
        System.out.println(context.getBean(DbConfig.class));
    }
}
